Add kernel pinning and post-driver reboot to accel_drivers role#1204
Add kernel pinning and post-driver reboot to accel_drivers role#1204skovili wants to merge 6 commits into
Conversation
MIG vGPU deployments require a specific kernel version matching the NVIDIA driver and a reboot after driver installation for nvidia-vgpu-mgr to detect MIG instances. These were previously handled by custom OpenStackDataPlaneService CRs outside the role. New features (disabled by default): - kernel.pin: install a pinned kernel, remove old kernels, exclude kernel packages from future dnf updates - reboot.post_driver: reboot after driver install and boot_config, wait for connection, verify nvidia-vgpu-mgr started Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: skovili The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Hi @skovili. Thanks for your PR. I'm waiting for a openstack-k8s-operators member to verify that this patch is reasonable to test. If it is, they should reply with Regular contributors should join the org to skip this step. Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
- Add kernel version format validation with assert before any destructive operations - Detect architecture dynamically via uname -m instead of hardcoding x86_64 - Fix dnf.conf exclude syntax (exclude= not excludepkgs=) - Add idempotency guard to reboot: skip when running kernel already matches target - Document kernel and reboot config in argument_specs.yml - Add kernel_pin_reboot molecule test scenario Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Build failed (check pipeline). Post ❌ openstack-k8s-operators-content-provider FAILURE in 7m 03s |
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 51m 56s |
The molecule test was failing because: - Hardcoded RHEL kernel version (5.14.0-570.26.1.el9_6) not available in CI repos — dnf install had nothing to do - Mock grubby installed at /usr/bin but real grubby lives at /usr/sbin - No /boot/vmlinuz-* files existed for grubby to operate on - Reboot and nvidia-vgpu-mgr verification impossible in CI Fix by: - Dynamically detecting the installed kernel version in prepare and passing it to converge/verify via a shared file - Installing mock grubby at /usr/sbin with symlink to /usr/bin - Creating fake /boot/vmlinuz-* files for grubby mock - Disabling reboot and vgpu-mgr verification (untestable in CI) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
recheck |
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 31m 10s |
The mock grubby script writes to a temp file via sudo (become: true), which may create the file with restrictive permissions (0600) due to sudo's umask override. The verify phase runs without become and cannot read the file, causing grubby --default-kernel to return "none". Fix by: - Using /var/tmp instead of /tmp (not subject to tmpfiles.d cleanup) - Explicitly chmod 644 the state file after writing - Adding become: true to verify's grubby task to match converge Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 00m 53s |
Summary
Problem
MIG vGPU deployments on NVIDIA A30 GPUs require:
nvidia-vgpu-mgrcan detect MIG instances and expose vGPU types via SR-IOV VFsThese were previously handled by custom
OpenStackDataPlaneServiceCRs outside the role, which is not sustainable.New Configuration
Updated Role Flow
setup_config.ymlkernel_pin.yml← NEW (whenkernel.pinis true)driver_install.ymlboot_config.ymlreboot.yml← NEW (whenreboot.post_driveris true)nvidia_mig_partitioning.yml🤖 Generated with Claude Code